The term “Web services” (sometimes referred to as “application services”) refers to a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open standards, over an Internet Protocol backbone using, for example, HTTP and HTTPS. Web services allow for communication of data among parties without intimate knowledge of each other's IT systems, which may be behind a firewall. Web services share business logic, data and processes through a programmatic interface across a network.
A Web service is, essentially, a function for which an input and output are specified. Thus, within a Web service definition, the input that the Web service requires is specified and the output that the Web service will return is specified. Specification of a Web service's input and output, in a corresponding Web service definition, includes data types and formats associated with invoking the Web service and returning results from the Web service.
Web services are commonly defined in an XML format that conforms to the WSDL (Web Service Description Language). Web service definitions can be stored and publicly listed using a registry service, such as in an XML-based registry that conforms to the Universal Description, Discovery and Integration (UDDI) specifications. Interactions between a Web service client and a Web service are commonly via exchanges of information in messages that conform to the Simple Object Access Protocol (SOAP).
Some database management systems have the capability to store procedures and functions in a database, and make such procedures and functions (referred to generally herein as “stored procedures”) available for use by database clients. Typically, stored procedures contain logic for manipulating data that is managed by the database system. Clients typically make calls to stored procedures through an access API (application program interface), such as the JDBC API, which facilitates connecting to the backend database server and preparing and processing requests for execution of the stored procedures by the server against the database. However, use of access APIs to invoke stored procedures is a limited (e.g., less universally accessible) implementation mechanism because access APIs typically communicate with the backend server using a proprietary protocol and, therefore, the stored procedures within the database are not universally and readily available over public networks such as the Internet.
Based on the foregoing, there is a need for improved techniques for exposing and invoking procedures stored in a database.